I2C總線通信技術(shù)在球形機器人雙DSP控制系統(tǒng)中的應用
2014/3/13 14:36:55
當前,機器視覺技術(shù)與運動控制技術(shù)正日益成為新一代智能機器人系統(tǒng)的熱門技術(shù),在反恐防爆與抗險救災、星際探測、地質(zhì)勘察等領域,機器視覺技術(shù)和運動控制技術(shù)都已得到大量應用。然而,在很多情況下,這兩種技術(shù)的無縫聯(lián)結(jié)和有機融合卻并不理想,以至直接影響到它們的使用效果。筆者通過研究和探索發(fā)現(xiàn),機器人控制系統(tǒng)硬件平臺搭建得合理與否是影響上述技術(shù)協(xié)調(diào)工作的重要原因之一。
對于傳統(tǒng)的機器人控制系統(tǒng)來說,選用單一的核心芯片將難以讓其在機器視覺和運動控制兩方面都具有優(yōu)良的表現(xiàn),將會導致機器人綜合效能得不到充分發(fā)揮。眾多的集成芯片生產(chǎn)廠家意識到圖像處理和運動控制將會是未來半導體芯片的兩大重要應用領域,都紛紛推出了基于上述兩種應用的芯片。
筆者經(jīng)過系統(tǒng)研究認識到,利用TI公司的C6000+C2000系列芯片搭建的機器人控制系統(tǒng)架構(gòu)方案可在機器視覺和運動控制之間找到了一個很好的結(jié)合點和平衡點,能較好地起到功能互補的效果。但應當看到,C6000和C2000雖同屬TI公司的產(chǎn)品線,而兩者的體系架構(gòu)是不同的,在選擇雙DSP建立系統(tǒng)時,如何處理它們之間的信號交互和協(xié)調(diào)工作是必須解決的首要問題。新型雙DSP架構(gòu)的信息交互機制的研究無論在學術(shù)上,還是在應用上都具有重大意義。
球形機器人控制系統(tǒng)的整體架構(gòu)
筆者所在科研團隊新近研制了一種新型球形機器人,該機器人能自動掃描和跟蹤目標,并可根據(jù)圖像傳感器采集到的數(shù)據(jù)自主對目標進行識別和判斷,屬于典型的機器視覺和運動控制相互協(xié)調(diào)、并行工作的系統(tǒng)。在搭建該球形機器人控制系統(tǒng)時,筆者采用了DSP C6000+C2000的雙核架構(gòu)。其中,C6000芯片主要用來對采集的現(xiàn)場圖像信息進行分析和處理,完成目標識別和判斷,并輸出處理結(jié)果;C2000芯片主要用來接收C6000芯片的處理結(jié)果,并完成相應的任務管理,如視覺系統(tǒng)云臺的掃描運動、防御功能的實現(xiàn)等等。該機器人控制系統(tǒng)的硬件結(jié)構(gòu)如圖1所示。
在C6000芯片的選型上,選擇了TMS320DM6437(以下簡稱DM6437)芯片,它是目前TI公司的TMS320C6000系列中性能較好的定點DSP之一。在C2000芯片的選擇上,選擇了TMS320F28015(以下簡稱F28015)芯片,它是TI公司推出的低成本,低功耗,基于TMS320C28x內(nèi)核的定點控制器芯片。
DSP C6000+C2000的組合架構(gòu)形式,既解決了C6000控制能力稍顯不足的問題,又克服了C2000圖像處理功能薄弱的缺點,可以最大程度地滿足球形機器人控制系統(tǒng)在綜合性能上的需求。但是,引入了強大的雙DSP系統(tǒng)后,隨之而來的便是兩者之間的通信問題,若處理不好,反而會適得其反。因此,雙DSP芯片間的通信接口的設計是保證整體機器人控制系統(tǒng)能完成高效協(xié)調(diào)工作的關鍵所在。
球形機器人控制系統(tǒng)雙處理器通信接口方案的選擇
筆者在研究過程中曾仔細分析過雙DSP架構(gòu)的硬件結(jié)構(gòu),發(fā)現(xiàn)C6000與C2000硬連接的接口方式可以多種多樣,如串口(UART)連接、USB連接、以太網(wǎng)(Ethernet)連接、HPI并行連接、I2C總線連接等。這些方式各有優(yōu)缺點和各自的適應場合,須考慮自身功能和外部環(huán)境的需求來合理選擇。表1給出了上述幾種信號傳輸接口的各自性能比較。
從表1中可以看出,I2C為片內(nèi)總線接口,其接口連接簡單可靠,非常適合于短距離高效通信。注意到DM6437和F28015片上都擁有I2C模塊,且將雙DSP做在同一塊PCB板上可以大大減小控制板卡的尺寸,降低電磁干擾,提高整個系統(tǒng)的可靠性。采用這樣的硬件設計思路后,片內(nèi)總線就應該成為首選的通信方式了。而I2C通信是一種很簡捷高效的片內(nèi)總線,其不占用芯片額外資源,除了通信可靠性高外,該接口的硬件設計難度也較小,因此,新型球形機器人控制系統(tǒng)最終確定I2C接口為雙DSP的通信接口方式。
球形機器人控制系統(tǒng)的接口設計
I2C總線介紹
I2C總線(Inter IC Bus)是一種用于IC器件之間連接的二進制總線。它通過SDA(串行數(shù)據(jù)線)及SCI(并行時鐘線)兩根線,在連到總線上的器件之間傳送數(shù)據(jù)。它根據(jù)地址識別每個支持I2C接口的器件。
I2C總線的基本結(jié)構(gòu)
采用I2C總線標準的I2C器件,其內(nèi)部不僅有I2C接口電路,而且實現(xiàn)了將內(nèi)部各單元按功能劃分為若干相對應獨立的模塊,通過軟件尋址實現(xiàn)片選,減少了器件片選線的連接。CPU不僅能通過指令將某個功能單元掛靠和摘離總線,還可對單元的工作狀況進行檢測,從而實現(xiàn)對硬件系統(tǒng)簡單和靈活的擴展和控制。I2C接口電路結(jié)構(gòu)如圖2所示。
I2C總線上的時鐘信號
在I2C總線上傳送信息時的時鐘同步信號是由掛接在SCL時鐘線上的所有器件的連接“與”完成的。SCL線上由高電平到低電平的跳變將影響到這些器件,一旦某個器件的時鐘信號下跳為低電平,將使SCL線上一直保持低電平,使SCL線上的所有器件開始低電平期。此時,低電平周期短的器件的時鐘由低至高的跳變并不能影響SCL線的狀態(tài),于是這些器件將進入高電平等待的狀態(tài)。
當所有器件的時鐘信號都上跳為高電平時,低電平期結(jié)束,SCL線被釋放返回高電平,即所有的器件都同時開始它們的高電平期。其后,第一個結(jié)束高電平期的器件又將SCL線拉成低電平。這樣就在SCL線上產(chǎn)生一個同步時鐘。可見,時鐘低電平時間由時鐘低電平期到最長的器件確定,而時鐘高電平期由時鐘高電平期最短的器件確定。
I2C總線上的數(shù)據(jù)傳輸
在數(shù)據(jù)傳送過程中,必須確認數(shù)據(jù)傳送的開始和結(jié)束。在I2C總線技術(shù)規(guī)范中,開始和結(jié)束信號(也稱啟動和停止信號)的定義如圖3所示。
當時鐘線SCL為高電平時,數(shù)據(jù)線SDA由高電平跳變?yōu)榈碗娖蕉x為“開始”信號;當SCL線為高電平時,SDA線發(fā)生低電平到高電平的跳變?yōu)椤敖Y(jié)束”信號。開始和結(jié)束信號都是由主器件產(chǎn)生。在開始信號以后,總線即被認為處于忙狀態(tài);在結(jié)束信號以后的一段時間內(nèi),總線被認為是空閑的。
I2C總線的數(shù)據(jù)傳送格式是:在I2C總線開始信號后,送出的第一個字節(jié)數(shù)據(jù)是用來選擇從器件地址的,其中前7位是地址碼,第8位是方向位(R/W)。方向位“0”表示發(fā)送,即主器件把信息寫到所選擇的從器件;方向位為“1”表示主器件將從從器件讀信息。開始信號后,系統(tǒng)中的各個器件將自己的地址和主器件送到總線上的地址進行比較,如果與主器件發(fā)送到總線上的地址一致,則該器件即為主器件尋址的器件,其接收信息還是發(fā)送信息則由第8位(R/W)確定。
I2C接口的硬件設計
由于DM6437和F28015都支持I2C接口,這使得I2C接口的硬件設計變得非常簡單,只需將各自的信號線和時鐘線對應相連即可。雙DSP的I2C總線接口硬件連接圖如圖4所示。
各引腳連接說明如下:
① DM6437的M3和M2引腳分別對應I2C_DATA和I2C_CLK,而F28015的GPIO32和GPIO33可以分別復用為I2C_DATA和I2C_CLK ??紤]到阻抗不匹配等因素會影響總線數(shù)據(jù)傳輸效果,因此還應該在I2C_DATA和I2C_CLK 的直連線路上各串聯(lián)一個小電阻(R107和R108)。
② 由3.1.1節(jié)的I2C總線結(jié)構(gòu)介紹可知,I2C_DATA和I2C_CLK是雙向電路,必須都通過一個電流源或上拉電阻連接到正的電源電壓。由于DSP的輸出CMOS電平為3.3V,所以在硬件設計時將I2C_DATA和I2C_CLK總線通過上拉電R59和R60連接到了3.3V的Vcc電源上。
I2C總線通信的軟件設計
雙DSP系統(tǒng)通信思路
雙機通信軟件的設計問題涉及到DSP C6000(DM6437)和DSP C2000(F28015)兩部分的軟件設計。設計雙DSP系統(tǒng)的初期設想是,用DM6437來接收圖像信息并進行處理,將最終得到的處理結(jié)果傳送給F28015,F(xiàn)28015根據(jù)得到的處理結(jié)果來執(zhí)行相應的電機控制及其他子任務??梢钥吹?,在這個通信過程中,DM6437是主機,負責發(fā)送數(shù)據(jù),而F28015是從機,負責接收數(shù)據(jù)并執(zhí)行相應控制命令。但是應注意到,在I2C總線通信中,主從機的地位并不是一直不變,可以根據(jù)需要隨時重新設定主機和從機。由于嵌入式系統(tǒng)的人機界面一般不大友好,想要觀察實驗結(jié)果往往需要打印數(shù)據(jù)或者通過LED等指示裝置來體現(xiàn)。在本文中,考慮到DM6437芯片極其對應的軟件開發(fā)系統(tǒng)CCS V3.3支持在線打印功能,因此,為了簡化設計,便于觀察,雙DSP的I2C通信可以這樣考慮:先讓DM6437發(fā)送一個數(shù)據(jù)到I2C總線上,并打印這個發(fā)送數(shù)據(jù)的相關信息,然后在F28015這一端接收數(shù)據(jù),如果接收到DM6437傳來的數(shù)據(jù),就將數(shù)據(jù)進行一定的變換(例如乘以一個倍數(shù)),然后再通過I2C總線將變換后的數(shù)據(jù)發(fā)送給DM6437。DM6437接收返回的數(shù)據(jù)并打印返回數(shù)據(jù)的相關信息。通過觀察打印信息,就可以很清楚地了解到I2C通信的實時效果。
DM6437的I2C通信軟件
根據(jù)所介紹的基本思路,可以設計出DM6437的I2C通信軟件的流程圖(圖5)。
F28015的I2C通信軟件
根據(jù)所介紹的基本思路,可以設計出F28015的I2C通信軟件的流程圖(圖6)。
結(jié)論
文中提出的TMS320DM6437+TMS320F28015的軟硬件設計方案在新型球形機器人控制系統(tǒng)中得到初步應用,驗證了理論設計的可行性和可靠性,實驗結(jié)果表明接口數(shù)據(jù)讀寫高效可靠。本設計對以后其他雙核控制系統(tǒng)接口的設計與研究工作具有很好的參考價值。
對于傳統(tǒng)的機器人控制系統(tǒng)來說,選用單一的核心芯片將難以讓其在機器視覺和運動控制兩方面都具有優(yōu)良的表現(xiàn),將會導致機器人綜合效能得不到充分發(fā)揮。眾多的集成芯片生產(chǎn)廠家意識到圖像處理和運動控制將會是未來半導體芯片的兩大重要應用領域,都紛紛推出了基于上述兩種應用的芯片。
筆者經(jīng)過系統(tǒng)研究認識到,利用TI公司的C6000+C2000系列芯片搭建的機器人控制系統(tǒng)架構(gòu)方案可在機器視覺和運動控制之間找到了一個很好的結(jié)合點和平衡點,能較好地起到功能互補的效果。但應當看到,C6000和C2000雖同屬TI公司的產(chǎn)品線,而兩者的體系架構(gòu)是不同的,在選擇雙DSP建立系統(tǒng)時,如何處理它們之間的信號交互和協(xié)調(diào)工作是必須解決的首要問題。新型雙DSP架構(gòu)的信息交互機制的研究無論在學術(shù)上,還是在應用上都具有重大意義。
球形機器人控制系統(tǒng)的整體架構(gòu)
筆者所在科研團隊新近研制了一種新型球形機器人,該機器人能自動掃描和跟蹤目標,并可根據(jù)圖像傳感器采集到的數(shù)據(jù)自主對目標進行識別和判斷,屬于典型的機器視覺和運動控制相互協(xié)調(diào)、并行工作的系統(tǒng)。在搭建該球形機器人控制系統(tǒng)時,筆者采用了DSP C6000+C2000的雙核架構(gòu)。其中,C6000芯片主要用來對采集的現(xiàn)場圖像信息進行分析和處理,完成目標識別和判斷,并輸出處理結(jié)果;C2000芯片主要用來接收C6000芯片的處理結(jié)果,并完成相應的任務管理,如視覺系統(tǒng)云臺的掃描運動、防御功能的實現(xiàn)等等。該機器人控制系統(tǒng)的硬件結(jié)構(gòu)如圖1所示。
在C6000芯片的選型上,選擇了TMS320DM6437(以下簡稱DM6437)芯片,它是目前TI公司的TMS320C6000系列中性能較好的定點DSP之一。在C2000芯片的選擇上,選擇了TMS320F28015(以下簡稱F28015)芯片,它是TI公司推出的低成本,低功耗,基于TMS320C28x內(nèi)核的定點控制器芯片。
DSP C6000+C2000的組合架構(gòu)形式,既解決了C6000控制能力稍顯不足的問題,又克服了C2000圖像處理功能薄弱的缺點,可以最大程度地滿足球形機器人控制系統(tǒng)在綜合性能上的需求。但是,引入了強大的雙DSP系統(tǒng)后,隨之而來的便是兩者之間的通信問題,若處理不好,反而會適得其反。因此,雙DSP芯片間的通信接口的設計是保證整體機器人控制系統(tǒng)能完成高效協(xié)調(diào)工作的關鍵所在。
球形機器人控制系統(tǒng)雙處理器通信接口方案的選擇
筆者在研究過程中曾仔細分析過雙DSP架構(gòu)的硬件結(jié)構(gòu),發(fā)現(xiàn)C6000與C2000硬連接的接口方式可以多種多樣,如串口(UART)連接、USB連接、以太網(wǎng)(Ethernet)連接、HPI并行連接、I2C總線連接等。這些方式各有優(yōu)缺點和各自的適應場合,須考慮自身功能和外部環(huán)境的需求來合理選擇。表1給出了上述幾種信號傳輸接口的各自性能比較。
從表1中可以看出,I2C為片內(nèi)總線接口,其接口連接簡單可靠,非常適合于短距離高效通信。注意到DM6437和F28015片上都擁有I2C模塊,且將雙DSP做在同一塊PCB板上可以大大減小控制板卡的尺寸,降低電磁干擾,提高整個系統(tǒng)的可靠性。采用這樣的硬件設計思路后,片內(nèi)總線就應該成為首選的通信方式了。而I2C通信是一種很簡捷高效的片內(nèi)總線,其不占用芯片額外資源,除了通信可靠性高外,該接口的硬件設計難度也較小,因此,新型球形機器人控制系統(tǒng)最終確定I2C接口為雙DSP的通信接口方式。
球形機器人控制系統(tǒng)的接口設計
I2C總線介紹
I2C總線(Inter IC Bus)是一種用于IC器件之間連接的二進制總線。它通過SDA(串行數(shù)據(jù)線)及SCI(并行時鐘線)兩根線,在連到總線上的器件之間傳送數(shù)據(jù)。它根據(jù)地址識別每個支持I2C接口的器件。
I2C總線的基本結(jié)構(gòu)
采用I2C總線標準的I2C器件,其內(nèi)部不僅有I2C接口電路,而且實現(xiàn)了將內(nèi)部各單元按功能劃分為若干相對應獨立的模塊,通過軟件尋址實現(xiàn)片選,減少了器件片選線的連接。CPU不僅能通過指令將某個功能單元掛靠和摘離總線,還可對單元的工作狀況進行檢測,從而實現(xiàn)對硬件系統(tǒng)簡單和靈活的擴展和控制。I2C接口電路結(jié)構(gòu)如圖2所示。
I2C總線上的時鐘信號
在I2C總線上傳送信息時的時鐘同步信號是由掛接在SCL時鐘線上的所有器件的連接“與”完成的。SCL線上由高電平到低電平的跳變將影響到這些器件,一旦某個器件的時鐘信號下跳為低電平,將使SCL線上一直保持低電平,使SCL線上的所有器件開始低電平期。此時,低電平周期短的器件的時鐘由低至高的跳變并不能影響SCL線的狀態(tài),于是這些器件將進入高電平等待的狀態(tài)。
當所有器件的時鐘信號都上跳為高電平時,低電平期結(jié)束,SCL線被釋放返回高電平,即所有的器件都同時開始它們的高電平期。其后,第一個結(jié)束高電平期的器件又將SCL線拉成低電平。這樣就在SCL線上產(chǎn)生一個同步時鐘。可見,時鐘低電平時間由時鐘低電平期到最長的器件確定,而時鐘高電平期由時鐘高電平期最短的器件確定。
I2C總線上的數(shù)據(jù)傳輸
在數(shù)據(jù)傳送過程中,必須確認數(shù)據(jù)傳送的開始和結(jié)束。在I2C總線技術(shù)規(guī)范中,開始和結(jié)束信號(也稱啟動和停止信號)的定義如圖3所示。
當時鐘線SCL為高電平時,數(shù)據(jù)線SDA由高電平跳變?yōu)榈碗娖蕉x為“開始”信號;當SCL線為高電平時,SDA線發(fā)生低電平到高電平的跳變?yōu)椤敖Y(jié)束”信號。開始和結(jié)束信號都是由主器件產(chǎn)生。在開始信號以后,總線即被認為處于忙狀態(tài);在結(jié)束信號以后的一段時間內(nèi),總線被認為是空閑的。
I2C總線的數(shù)據(jù)傳送格式是:在I2C總線開始信號后,送出的第一個字節(jié)數(shù)據(jù)是用來選擇從器件地址的,其中前7位是地址碼,第8位是方向位(R/W)。方向位“0”表示發(fā)送,即主器件把信息寫到所選擇的從器件;方向位為“1”表示主器件將從從器件讀信息。開始信號后,系統(tǒng)中的各個器件將自己的地址和主器件送到總線上的地址進行比較,如果與主器件發(fā)送到總線上的地址一致,則該器件即為主器件尋址的器件,其接收信息還是發(fā)送信息則由第8位(R/W)確定。
I2C接口的硬件設計
由于DM6437和F28015都支持I2C接口,這使得I2C接口的硬件設計變得非常簡單,只需將各自的信號線和時鐘線對應相連即可。雙DSP的I2C總線接口硬件連接圖如圖4所示。
各引腳連接說明如下:
① DM6437的M3和M2引腳分別對應I2C_DATA和I2C_CLK,而F28015的GPIO32和GPIO33可以分別復用為I2C_DATA和I2C_CLK ??紤]到阻抗不匹配等因素會影響總線數(shù)據(jù)傳輸效果,因此還應該在I2C_DATA和I2C_CLK 的直連線路上各串聯(lián)一個小電阻(R107和R108)。
② 由3.1.1節(jié)的I2C總線結(jié)構(gòu)介紹可知,I2C_DATA和I2C_CLK是雙向電路,必須都通過一個電流源或上拉電阻連接到正的電源電壓。由于DSP的輸出CMOS電平為3.3V,所以在硬件設計時將I2C_DATA和I2C_CLK總線通過上拉電R59和R60連接到了3.3V的Vcc電源上。
I2C總線通信的軟件設計
雙DSP系統(tǒng)通信思路
雙機通信軟件的設計問題涉及到DSP C6000(DM6437)和DSP C2000(F28015)兩部分的軟件設計。設計雙DSP系統(tǒng)的初期設想是,用DM6437來接收圖像信息并進行處理,將最終得到的處理結(jié)果傳送給F28015,F(xiàn)28015根據(jù)得到的處理結(jié)果來執(zhí)行相應的電機控制及其他子任務??梢钥吹?,在這個通信過程中,DM6437是主機,負責發(fā)送數(shù)據(jù),而F28015是從機,負責接收數(shù)據(jù)并執(zhí)行相應控制命令。但是應注意到,在I2C總線通信中,主從機的地位并不是一直不變,可以根據(jù)需要隨時重新設定主機和從機。由于嵌入式系統(tǒng)的人機界面一般不大友好,想要觀察實驗結(jié)果往往需要打印數(shù)據(jù)或者通過LED等指示裝置來體現(xiàn)。在本文中,考慮到DM6437芯片極其對應的軟件開發(fā)系統(tǒng)CCS V3.3支持在線打印功能,因此,為了簡化設計,便于觀察,雙DSP的I2C通信可以這樣考慮:先讓DM6437發(fā)送一個數(shù)據(jù)到I2C總線上,并打印這個發(fā)送數(shù)據(jù)的相關信息,然后在F28015這一端接收數(shù)據(jù),如果接收到DM6437傳來的數(shù)據(jù),就將數(shù)據(jù)進行一定的變換(例如乘以一個倍數(shù)),然后再通過I2C總線將變換后的數(shù)據(jù)發(fā)送給DM6437。DM6437接收返回的數(shù)據(jù)并打印返回數(shù)據(jù)的相關信息。通過觀察打印信息,就可以很清楚地了解到I2C通信的實時效果。
DM6437的I2C通信軟件
根據(jù)所介紹的基本思路,可以設計出DM6437的I2C通信軟件的流程圖(圖5)。
F28015的I2C通信軟件
根據(jù)所介紹的基本思路,可以設計出F28015的I2C通信軟件的流程圖(圖6)。
結(jié)論
文中提出的TMS320DM6437+TMS320F28015的軟硬件設計方案在新型球形機器人控制系統(tǒng)中得到初步應用,驗證了理論設計的可行性和可靠性,實驗結(jié)果表明接口數(shù)據(jù)讀寫高效可靠。本設計對以后其他雙核控制系統(tǒng)接口的設計與研究工作具有很好的參考價值。
提交
查看更多評論
其他資訊
工業(yè)機器人控制系統(tǒng)的開放體系結(jié)構(gòu)
工業(yè)機器人離線編程及無碰撞路徑規(guī)劃系統(tǒng)的開發(fā)研究
工業(yè)機器人手臂結(jié)構(gòu)的有限元分析與研究
工業(yè)機器人通用控制器研究開發(fā)
工業(yè)機器人網(wǎng)絡控制與編程